/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import {CommonModule} from '@angular/common';
import {NgModule} from '@angular/core';
import {FormsModule} from '@angular/forms';
import {RouterModule, Routes} from '@angular/router';
import {PaginationModule} from 'ngx-bootstrap/pagination';
import {TooltipModule} from 'ngx-bootstrap/tooltip';
import {TabsModule} from 'ngx-bootstrap/tabs';
import {PopoverModule} from 'ngx-bootstrap/popover';
import {TreeNgxModule} from 'tree-ngx';
import { MarkdownModule } from 'angular2-markdown';

import {BusyConfig, BusyModule} from 'angular2-busy';
import {WikiftEditorModule} from '../../../shared/directives/wikift-editor/wikift-editor.module';

import {SpaceInfoComponent} from './space.info.component';

import {ArticleService} from '../../../../services/article.service';
import {SpaceService} from '../../../../services/space.service';
import {CommentService} from "../../../../services/comment.service";

export function busyConfigFactory() {
  return new BusyConfig({
    message: '数据加载中, 请稍候...',
    backdrop: true,
  });
}

const SPACE_INFO_ROUTES: Routes = [
  {path: '', component: SpaceInfoComponent}
];

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    BusyModule,
    WikiftEditorModule,
    TreeNgxModule,
    TooltipModule.forRoot(),
    TabsModule.forRoot(),
    PaginationModule.forRoot(),
    PopoverModule.forRoot(),
    MarkdownModule.forRoot(),
    RouterModule.forChild(SPACE_INFO_ROUTES)
  ],
  exports: [],
  declarations: [
    SpaceInfoComponent
  ],
  providers: [
    ArticleService,
    SpaceService,
    CommentService,
    {
      provide: BusyConfig,
      useFactory: busyConfigFactory
    }
  ],
})
export class SpaceInfoModule {
}
